package org.lemon.transport.context.session;

import org.lemon.transport.context.data.device.Device;
import org.lemon.transport.context.data.device.DeviceProfile;
import org.server.transport.gen.SessionProto;

import java.util.Optional;
import java.util.UUID;

public interface SessionContext {

    UUID getSessionId();

    int nextMsgId();

    void onDeviceProfileUpdate(SessionProto.SessionInfoProto sessionInfo, DeviceProfile deviceProfile);

    void onDeviceUpdate(SessionProto.SessionInfoProto sessionInfo, Device device, Optional<DeviceProfile> deviceProfileOpt);

}
